package com.cn.exception.hm;

/**
 * throw抛出异常 (应用)
 * 1. 格式
 *   throw new 异常();
 * 2. 注意
 *   这个格式是在方法内的，表示当前代码手动抛出一个异常，下面的代码不用再执行了
 * 3. throws和throw的区别
 *  throws:用在方法生命后面，跟的是异常类名，表示声明异常，调用该方法有可能会出现这样的异常
 *  throw: 用在方法体内，跟的是异常对象名,表示手动抛出异常对象，由方法体内的语句处理

 */
public class Exception_03_Throw {

    public static void main(String[] args) {
        //int [] arr = {1,2,3,4,5};
        int [] arr = null;
        printArr(arr);//就会 接收到一个异常.
        //我们还需要自己处理一下异常.
    }

    private static void printArr(int[] arr) {
        if(arr == null){
            //调用者知道成功打印了吗?
            //System.out.println("参数不能为null");
            throw new NullPointerException(); //当参数为null的时候
            //手动创建了一个异常对象,抛给了调用者,产生了一个异常
        }else{
            for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]);
            }
        }
    }
}
